package abstract_;

/**
 * @Package: abstract_
 * @ClassName: Abstract01
 * @Author: x2606
 * @CreateTime: 2022/3/10 22:31
 * @Description: 抽象类
 */

public class Abstract01 {
}

//一般来说，抽象类一般会被子类继承，实现父类的抽象方法
abstract class Animal{
    private String name;

    public Animal() {
    }

    public Animal(String name) {
        this.name = name;
    }
    //这里的eat你实现了，但是没什么意义，即父类方法的不确定性。
//    public void eat(){
//        System.out.println("这是一个动物，但是不知道吃啥。。。");
//    }

    //考虑将该方法设计为抽象(abstract)方法。
    //抽象方法就是没有实现的方法。
    //当一个类中有抽象方法时，需要将该类声明为抽象类。
    public abstract void eat() ;
    public abstract void cry() ;
}

abstract class cat extends Animal{
    public void eat(){};
    public abstract void cry();
}